import axios from "axios";

export default {
    name: 'LoginView',
    data() {
        return {
            username: "",
            password: "",
            role: "0", // 添加角色属性
            showRegister: false,
            registerUsername: "",
            registerPassword: "",
        };
    },
    methods: {
        //登录
        async submitForm() {
            try {
                const response = await axios.post('http://localhost:8081/admin/login', {
                    username: this.username,
                    password: this.password,
                    type: this.role, // 添加角色信息
                });

                // 检查响应数据是否包含状态码 20000（表示成功）
                if (response.data.message === "ok") {
                    // 提示用户登录成功，将用户重定向到另一个页面
                    this.$message.success('登录成功');
                    // 假设这是一个成功的登录响应
                    localStorage.setItem("username", this.username);
                    localStorage.setItem("token", response.data.data.token);

                    // 如果 API 返回身份验证令牌或其他信息，请在此处进行相应操作，如存储在 localStorage。
                    // 根据用户角色跳转到不同页面
                    switch (this.role) {
                        case '0': // 系统管理员
                            this.$router.push({name: 'Admin'});
                            break;
                        case '1': // 审核员
                            this.$router.push({name: 'Audit'});
                            break;
                        case '2': // 学员
                            this.$router.push({name: 'Student'});
                            break;
                    }
                } else {
                    this.username = '';
                    this.password = '';
                    // 如果状态码不为 20000，通常表示出现错误，向用户显示错误消息
                    this.$message.error('登陆失败！'+response.data.message)
                }
            } catch (error) {
                // 捕获错误并向用户显示错误消息
                console.error('登录请求失败:', error);
                this.$message.error("登陆失败！");
            }
        },
        //点击注册跳转
        toggleRegister() {
            this.showRegister = !this.showRegister;
        },
        //注册
        async submitRegisterForm() {
            try {
                // 从表单获取用户名和密码
                const username = this.registerUsername;
                const password = this.registerPassword;

                // 发送一个 POST 请求到后端 API 注册用户
                const response = await axios.post('http://localhost:8081/admin/register', {
                    username: username,
                    password: password,
                });

                // 根据响应结果执行相应操作
                if (response.data.code === 20000) {
                    // 注册成功，提示用户，并重定向到登录页面或其他页面
                    this.$message.success('注册成功');
                    this.$router.push({name: 'Login'});
                    this.showRegister = !this.showRegister;
                } else {
                    // 如果状态码不是 20000，通常表示出现错误，向用户显示错误消息。
                    alert(response.data.message);
                }
            } catch (error) {
                // 捕获错误并向用户显示错误消息
                console.error('注册请求失败:', error);
                alert('注册请求失败，请稍后重试。');
            }
        },
    },
};